#include "WPILib.h"

#ifndef _INPUT_H
#define _INPUT_H

#define NUM_JOYSTICK_BUTTONS 16

class InputHandler {
	DriverStation *m_ds;
	Joystick *m_rightStick, *m_leftStick, *m_steeringWheel;
	AnalogChannel *m_frontSteering, *m_backSteering, *m_turretSteering;
	DigitalInput *m_frontBanner, *m_alliance, *m_auton0, *m_auton1;
public:
	bool m_rightStickButtonState[(NUM_JOYSTICK_BUTTONS+1)];
	bool m_leftStickButtonState[(NUM_JOYSTICK_BUTTONS+1)];
	
	InputHandler::InputHandler();
	void InputHandler::Run();
	void InputHandler::HandleJoystick(Joystick *currStick, bool *buttonPreviouslyPressed);

	bool InputHandler::GetTargetOrientation();
	
	float InputHandler::GetRightJoy();
	float InputHandler::GetLeftJoy();
	float InputHandler::GetDriveSpeed();
	float InputHandler::GetWheelValue();
	float InputHandler::GetFrontAngle();
	float InputHandler::GetBackAngle();
	float InputHandler::GetTurretAngle();
	bool InputHandler::GetFrontBanner();

	bool InputHandler::GetPureAutonomous();
	bool InputHandler::GetAutoTrack();
	bool InputHandler::GetAutoFire();
	bool InputHandler::GetGyro();
	float InputHandler::GetAimTurret();
	bool InputHandler::GetFire();
	int InputHandler::GetMoveBelts();
	
	bool InputHandler::HasBalls();
	int InputHandler::GetAutonMode();
};
#endif
